package com.neu.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.neu.base.PageBean;
import com.neu.base.Result;
import com.neu.entity.DTO.InviteProjectUser;
import com.neu.entity.DTO.ProjectDTO;
import com.neu.entity.DTO.RemoveUserProject;
import com.neu.entity.DTO.TaskDTO;
import com.neu.entity.Project;
import com.neu.entity.User;

import java.util.List;
import java.util.Map;

public interface ProjectService extends IService<Project> {

    PageBean<Project> pagelist(Integer pageNum, Integer pageSize);

    PageBean<Project> search(Map map);

    List<Project> findProjectById(List<String> list);

    ProjectDTO findUserByProjectId(String projectId);

    ProjectDTO getUsersByType(TaskDTO taskDTO);

    Project updateState(String projectId, String status);

    ProjectDTO findUserByProjectTask(String projectId, String taskType);

    boolean process(List<Project> projectList);

    List<User> findUserByTenantIdFilter(Project project);

    Result inviteUser(InviteProjectUser inviteProjectUser);

    Result removeUser(RemoveUserProject removeUserProject);

    List<Project> all();

    Result removeProject(ProjectDTO projectDTO);

    Result removeProjectBatch(List<String> list);
}
